/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the  "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/*
 * $Id$
 */
package wx.xml.xalan.xalan.templates;


/**
 * Primary constants used in the TransformerImpl classes.
 *
 * @xsl.usage advanced
 */
public class Constants extends wx.xml.xalan.xml.utils.Constants {

    /**
     * IDs for XSL element types. These are associated
     * with the string literals in the TransformerImpl class.
     * Don't change the numbers. NOTE THAT THESE ARE NOT IN
     * ALPHABETICAL ORDER!
     * (It's a pity Java doesn't have a real Enumerated Mnemonic
     * datatype... or a C-like preprocessor in lieu thereof which
     * could be used to generate and maintain synch between these lists.)
     */
    public static final int ELEMNAME_UNDEFINED = -1, ELEMNAME_WITHPARAM = 2,
        ELEMNAME_ADDATTRIBUTE                  = 4, ELEMNAME_ANCHOR = 22,

    //  ELEMNAME_ANCHOR_PATTERN = 23,
    ELEMNAME_APPLY_TEMPLATES        = 50, ELEMNAME_USE = 34, ELEMNAME_CHILDREN = 6,
        ELEMNAME_CHOOSE             = 37, ELEMNAME_COMMENT = 59,  // my own
        ELEMNAME_CONSTRUCT          = 7,  // my own
        ELEMNAME_CONTENTS           = 8, ELEMNAME_COPY = 9,
        ELEMNAME_COPY_OF            = 74,
        ELEMNAME_DECIMALFORMAT      = 83,
        ELEMNAME_DEFINEATTRIBUTESET = 40,

    //  ELEMNAME_DEFINECONSTANT = 29,
    //  ELEMNAME_DEFINEMACRO = 10,
    ELEMNAME_DEFINESCRIPT         = 11, ELEMNAME_DISPLAYIF = 12,  // my own
        ELEMNAME_EMPTY            = 14, ELEMNAME_EVAL = 15,
        ELEMNAME_EXPECTEDCHILDREN = 16,
        ELEMNAME_EXTENSION        = 54,
        ELEMNAME_EXTENSIONHANDLER = 63,
        ELEMNAME_FOREACH          = 28, ELEMNAME_KEY = 31,
        ELEMNAME_IF               = 36, ELEMNAME_IMPORT = 26,
        ELEMNAME_INCLUDE          = 27,
        ELEMNAME_CALLTEMPLATE     = 17,
        ELEMNAME_PARAMVARIABLE    = 41,
        ELEMNAME_NUMBER           = 35, ELEMNAME_NSALIAS = 84,
        ELEMNAME_OTHERWISE        = 39, ELEMNAME_PI = 58,
        ELEMNAME_PRESERVESPACE    = 33,
        ELEMNAME_REMOVEATTRIBUTE  = 5,
        ELEMNAME_TEMPLATE         = 19, ELEMNAME_SORT = 64,
        ELEMNAME_STRIPSPACE       = 32,
        ELEMNAME_STYLESHEET       = 25, ELEMNAME_TEXT = 42,
        ELEMNAME_VALUEOF          = 30, ELEMNAME_WHEN = 38,

    // Pattern by example support
    ELEMNAME_ROOT                = 44, ELEMNAME_ANY = 45, ELEMNAME_ELEMENT = 46,
        ELEMNAME_TARGETELEMENT   = 47, ELEMNAME_ATTRIBUTE = 48,
        ELEMNAME_TARGETATTRIBUTE = 49, ELEMNAME_URL = 52,  // my own
        ELEMNAME_CALL            = 55,  // my own

    //  ELEMNAME_WITHPARAM = 56,
    ELEMNAME_FALLBACK               = 57,  // my own
        ELEMNAME_TARGETPI           = 60,  // my own
        ELEMNAME_TARGETCOMMENT      = 61,  // my own
        ELEMNAME_TARGETTEXT         = 62,  // my own
        ELEMNAME_CSSSTYLECONVERSION = 65,  // my own
        ELEMNAME_COUNTER            = 66, ELEMNAME_COUNTERS = 67,
        ELEMNAME_COUNTERINCREMENT   = 68, ELEMNAME_COUNTERRESET = 69,
        ELEMNAME_COUNTERSCOPE       = 71, ELEMNAME_APPLY_IMPORTS = 72,
        ELEMNAME_VARIABLE           = 73, ELEMNAME_MESSAGE = 75, ELEMNAME_LOCALE = 76,
        ELEMNAME_LITERALRESULT      = 77, ELEMNAME_TEXTLITERALRESULT = 78,
        ELEMNAME_EXTENSIONCALL      = 79, ELEMNAME_EXTENSIONDECL = 85,
        ELEMNAME_EXTENSIONSCRIPT    = 86, ELEMNAME_OUTPUT = 80,
        ELEMNAME_COMPONENT          = 81, ELEMNAME_SCRIPT = 82;

    // Next free number: 90 (88 and 89 used for EXSLT elements);

    /**
     * Literals for XSL element names.  Note that there are more
     * names than IDs, because some names map to the same ID.
     */
    public static final String
        ELEMNAME_ANCHOR_STRING             = "anchor",
        ELEMNAME_ANY_STRING                = "any",  // pattern-by-example support
        ELEMNAME_APPLY_IMPORTS_STRING      = "apply-imports",
        ELEMNAME_APPLY_TEMPLATES_STRING    = "apply-templates",
        ELEMNAME_ARG_STRING                = "arg",
        ELEMNAME_ATTRIBUTESET_STRING       = "attribute-set",
        ELEMNAME_ATTRIBUTE_STRING          = "attribute",  // pattern-by-example support
        ELEMNAME_CALLTEMPLATEARG_STRING    = "invoke-arg",
        ELEMNAME_CALLTEMPLATE_STRING       = "call-template",
        ELEMNAME_CALL_STRING               = "call",
        ELEMNAME_CHILDREN_STRING           = "children",
        ELEMNAME_CHOOSE_STRING             = "choose",
        ELEMNAME_COMMENT_STRING            = "comment",
        ELEMNAME_COMPONENT_STRING          = "component",
        ELEMNAME_CONSTRUCT_STRING          = "construct",  // my own
        ELEMNAME_CONTENTS_STRING           = "contents",
        ELEMNAME_COPY_OF_STRING            = "copy-of",
        ELEMNAME_COPY_STRING               = "copy",
        ELEMNAME_COUNTERINCREMENT_STRING   = "counter-increment",
        ELEMNAME_COUNTERRESET_STRING       = "counter-reset",
        ELEMNAME_COUNTERSCOPE_STRING       = "counter-scope",
        ELEMNAME_COUNTERS_STRING           = "counters",
        ELEMNAME_COUNTER_STRING            = "counter",
        ELEMNAME_CSSSTYLECONVERSION_STRING = "css-style-conversion",
        ELEMNAME_DECIMALFORMAT_STRING      = "decimal-format",
        ELEMNAME_DISPLAYIF_STRING          = "display-if",  // my own
        ELEMNAME_ELEMENT_STRING            = "element",  // pattern-by-example support
        ELEMNAME_EMPTY_STRING              = "empty",
        ELEMNAME_EVAL_STRING               = "eval",
        ELEMNAME_EXPECTEDCHILDREN_STRING   = "expectedchildren",
        ELEMNAME_EXTENSIONHANDLER_STRING   = "code-dispatcher",
        ELEMNAME_EXTENSION_STRING          = "functions",
        ELEMNAME_FALLBACK_STRING           = "fallback",
        ELEMNAME_FOREACH_STRING            = "for-each",
        ELEMNAME_IF_STRING                 = "if",
        ELEMNAME_IMPORT_STRING             = "import",
        ELEMNAME_INCLUDE_STRING            = "include",
        ELEMNAME_KEY_STRING                = "key",
        ELEMNAME_LOCALE_STRING             = "locale",
        ELEMNAME_MESSAGE_STRING            = "message",
        ELEMNAME_NSALIAS_STRING            = "namespace-alias",
        ELEMNAME_NUMBER_STRING             = "number",
        ELEMNAME_OTHERWISE_STRING          = "otherwise",
        ELEMNAME_OUTPUT_STRING             = "output",
        ELEMNAME_PARAMVARIABLE_STRING      = "param",
        ELEMNAME_PI_OLD_STRING             = "pi",
        ELEMNAME_PI_STRING                 = "processing-instruction",
        ELEMNAME_PRESERVESPACE_STRING      = "preserve-space",
        ELEMNAME_ROOT_STRING               = "root",  // pattern-by-example support
        ELEMNAME_SCRIPT_STRING             = "script",
        ELEMNAME_SORT_STRING               = "sort",
        ELEMNAME_STRIPSPACE_STRING         = "strip-space",
        ELEMNAME_STYLESHEET_STRING         = "stylesheet",
        ELEMNAME_TARGETATTRIBUTE_STRING    = "target-attribute",  // pattern-by-example support
        ELEMNAME_TARGETCOMMENT_STRING      = "target-comment",
        ELEMNAME_TARGETELEMENT_STRING      = "target-element",  // pattern-by-example support
        ELEMNAME_TARGETPI_STRING           = "target-pi",
        ELEMNAME_TARGETTEXT_STRING         = "target-text",
        ELEMNAME_TEMPLATE_STRING           = "template",
        ELEMNAME_TEXT_STRING               = "text",
        ELEMNAME_TRANSFORM_STRING          = "transform",
        ELEMNAME_URL_STRING                = "uri",  // pattern-by-example support
        ELEMNAME_USE_STRING                = "use",
        ELEMNAME_VALUEOF_STRING            = "value-of",
        ELEMNAME_VARIABLE_STRING           = "variable",
        ELEMNAME_WHEN_STRING               = "when",
        ELEMNAME_WITHPARAM_STRING          = "with-param";

    /**
     * Literals for EXSLT function elements.
     */
    public static final String
        EXSLT_ELEMNAME_FUNCTION_STRING   = "function",
        EXSLT_ELEMNAME_FUNCRESULT_STRING = "result";
    public static final int
        EXSLT_ELEMNAME_FUNCTION   = 88,
        EXSLT_ELEMNAME_FUNCRESULT = 89;


    /**
     * Literals for XSL attribute names.  Note that there may be more
     * names than IDs, because some names may map to the same ID.
     */
    public static final String
        ATTRNAME_AMOUNT                        = "amount",
        ATTRNAME_ANCESTOR                      = "ancestor",
        ATTRNAME_ARCHIVE                       = "archive",
        ATTRNAME_ATTRIBUTE                     = "attribute",
        ATTRNAME_ATTRIBUTE_SET                 = "attribute-set",
        ATTRNAME_CASEORDER                     = "case-order",
        ATTRNAME_CLASS                         = "class",
        ATTRNAME_CLASSID                       = "classid",
        ATTRNAME_CODEBASE                      = "codebase",
        ATTRNAME_CODETYPE                      = "type",
        ATTRNAME_CONDITION                     = "condition",
        ATTRNAME_COPYTYPE                      = "copy-type",
        ATTRNAME_COUNT                         = "count",
        ATTRNAME_DATATYPE                      = "data-type",
        ATTRNAME_DECIMALSEPARATOR              = "decimal-separator",
        ATTRNAME_DEFAULT                       = "default",
        ATTRNAME_DEFAULTSPACE                  = "default-space",
        ATTRNAME_DEPTH                         = "with-children",
        ATTRNAME_DIGIT                         = "digit",
        ATTRNAME_DIGITGROUPSEP                 = "digit-group-sep",
        ATTRNAME_DISABLE_OUTPUT_ESCAPING       = "disable-output-escaping",
        ATTRNAME_ELEMENT                       = "element",
        ATTRNAME_ELEMENTS                      = "elements",
        ATTRNAME_EXCLUDE_RESULT_PREFIXES       = "exclude-result-prefixes",
        ATTRNAME_EXPR                          = "expr",
        ATTRNAME_EXTENSIONELEMENTPREFIXES      = "extension-element-prefixes",
        ATTRNAME_FORMAT                        = "format",
        ATTRNAME_FROM                          = "from",
        ATTRNAME_GROUPINGSEPARATOR             = "grouping-separator",
        ATTRNAME_GROUPINGSIZE                  = "grouping-size",
        ATTRNAME_HREF                          = "href",
        ATTRNAME_ID                            = "id",
        ATTRNAME_IMPORTANCE                    = "importance",
        ATTRNAME_INDENTRESULT                  = "indent-result",
        ATTRNAME_INFINITY                      = "infinity",
        ATTRNAME_LANG                          = "lang",
        ATTRNAME_LETTERVALUE                   = "letter-value",
        ATTRNAME_LEVEL                         = "level",
        ATTRNAME_MATCH                         = "match",
        ATTRNAME_METHOD                        = "calls",
        ATTRNAME_MINUSSIGN                     = "minus-sign",
        ATTRNAME_MODE                          = "mode",
        ATTRNAME_NAME                          = "name",
        ATTRNAME_NAMESPACE                     = "namespace",
        ATTRNAME_NAN                           = "NaN",
        ATTRNAME_NDIGITSPERGROUP               = "n-digits-per-group",
        ATTRNAME_NS                            = "ns",
        ATTRNAME_ONLY                          = "only",
        ATTRNAME_ORDER                         = "order",
        ATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS = "cdata-section-elements",
        ATTRNAME_OUTPUT_DOCTYPE_PUBLIC         = "doctype-public",
        ATTRNAME_OUTPUT_DOCTYPE_SYSTEM         = "doctype-system",
        ATTRNAME_OUTPUT_ENCODING               = "encoding",
        ATTRNAME_OUTPUT_INDENT                 = "indent",
        ATTRNAME_OUTPUT_MEDIATYPE              = "media-type",
        ATTRNAME_OUTPUT_METHOD                 = "method",  // qname,
        ATTRNAME_OUTPUT_OMITXMLDECL            = "omit-xml-declaration",
        ATTRNAME_OUTPUT_STANDALONE             = "standalone",
        ATTRNAME_OUTPUT_VERSION                = "version",
        ATTRNAME_PATTERNSEPARATOR              = "pattern-separator",
        ATTRNAME_PERCENT                       = "percent",
        ATTRNAME_PERMILLE                      = "per-mille",
        ATTRNAME_PRIORITY                      = "priority",
        ATTRNAME_REFID                         = "refID",
        ATTRNAME_RESULTNS                      = "result-ns",
        ATTRNAME_RESULT_PREFIX                 = "result-prefix",
        ATTRNAME_SELECT                        = "select",
        ATTRNAME_SEQUENCESRC                   = "sequence-src",
        ATTRNAME_STYLE                         = "style",
        ATTRNAME_STYLESHEET_PREFIX             = "stylesheet-prefix",
        ATTRNAME_TERMINATE                     = "terminate",
        ATTRNAME_TEST                          = "test",
        ATTRNAME_TOSTRING                      = "to-string",
        ATTRNAME_TYPE                          = "type",
        ATTRNAME_USE                           = "use",
        ATTRNAME_USEATTRIBUTESETS              = "use-attribute-sets",
        ATTRNAME_VALUE                         = "value",
        ATTRNAME_VERSION                       = "version",
        ATTRNAME_XMLNS                         = "xmlns:", // namespace declaration prefix -- NOT an attribute by itself
        ATTRNAME_XMLNSDEF                      = "xmlns", // default namespace
        ATTRNAME_XMLSPACE                      = "xml:space",
        ATTRNAME_ZERODIGIT                     = "zero-digit";

    /**
     * IDs for XSL attribute types. These are associated
     * with the string literals in the TransformerImpl class.
     * Don't change the numbers. NOTE THAT THESE ARE NOT IN
     * ALPHABETICAL ORDER!
     */
    public static final int TATTRNAME_OUTPUT_METHOD = 1, TATTRNAME_AMOUNT = 2,
        TATTRNAME_ANCESTOR                          = 3, TATTRNAME_ARCHIVE = 4,
        TATTRNAME_ATTRIBUTE                         = 5,
        TATTRNAME_ATTRIBUTE_SET                     = 6,
        TATTRNAME_CASEORDER                         = 7, TATTRNAME_CLASS = 8,
        TATTRNAME_CLASSID                           = 9, TATTRNAME_CODEBASE = 10,
        TATTRNAME_CODETYPE                          = 11, TATTRNAME_CONDITION = 12,
        TATTRNAME_COPYTYPE                          = 13, TATTRNAME_COUNT = 14,
        TATTRNAME_DATATYPE                          = 15, TATTRNAME_DEFAULT = 16,
        TATTRNAME_DEFAULTSPACE                      = 17, TATTRNAME_DEPTH = 18,
        TATTRNAME_DIGITGROUPSEP                     = 19,
        TATTRNAME_DISABLE_OUTPUT_ESCAPING           = 20,
        TATTRNAME_ELEMENT                           = 21, TATTRNAME_ELEMENTS = 22,
        TATTRNAME_EXPR                              = 23,
        TATTRNAME_EXTENSIONELEMENTPREFIXES          = 24,
        TATTRNAME_FORMAT                            = 25, TATTRNAME_FROM = 26,
        TATTRNAME_GROUPINGSEPARATOR                 = 27,
        TATTRNAME_GROUPINGSIZE                      = 28, TATTRNAME_HREF = 29,
        TATTRNAME_ID                                = 30, TATTRNAME_IMPORTANCE = 31,
        TATTRNAME_INDENTRESULT                      = 32, TATTRNAME_LANG = 33,
        TATTRNAME_LETTERVALUE                       = 34, TATTRNAME_LEVEL = 35,
        TATTRNAME_MATCH                             = 36, TATTRNAME_METHOD = 37,
        TATTRNAME_MODE                              = 38, TATTRNAME_NAME = 39,
        TATTRNAME_NAMESPACE                         = 40,
        TATTRNAME_NDIGITSPERGROUP                   = 41, TATTRNAME_NS = 42,
        TATTRNAME_ONLY                              = 43, TATTRNAME_ORDER = 44,
        TATTRNAME_OUTPUT_CDATA_SECTION_ELEMENTS     = 45,
        TATTRNAME_OUTPUT_DOCTYPE_PUBLIC             = 46,
        TATTRNAME_OUTPUT_DOCTYPE_SYSTEM             = 47,
        TATTRNAME_OUTPUT_ENCODING                   = 48,
        TATTRNAME_OUTPUT_INDENT                     = 49,
        TATTRNAME_OUTPUT_MEDIATYPE                  = 50,
        TATTRNAME_OUTPUT_STANDALONE                 = 51,
        TATTRNAME_OUTPUT_VERSION                    = 52,
        TATTRNAME_OUTPUT_OMITXMLDECL                = 53,
        TATTRNAME_PRIORITY                          = 54, TATTRNAME_REFID = 55,
        TATTRNAME_RESULTNS                          = 56, TATTRNAME_SELECT = 57,
        TATTRNAME_SEQUENCESRC                       = 58, TATTRNAME_STYLE = 59,
        TATTRNAME_TEST                              = 60, TATTRNAME_TOSTRING = 61,
        TATTRNAME_TYPE                              = 62, TATTRNAME_USE = 63,
        TATTRNAME_USEATTRIBUTESETS                  = 64,
        TATTRNAME_VALUE                             = 65, TATTRNAME_XMLNSDEF = 66,
        TATTRNAME_XMLNS                             = 67, TATTRNAME_XMLSPACE = 68,
        TATTRNAME_EXCLUDE_RESULT_PREFIXES           = 69;

    /**
     * Mnemonics for the possible values of the xsl:output element's
     * method= attribute:
     * <ul>
     * <li>ATTRVAL_OUTPUT_METHOD_XML = Use an XML formatter to
     * produce the output document (basic XSLT operation).</li>
     * <li>ATTRVAL_OUTPUT_METHOD_HTML: Use an HTML formatter to
     * produce the output document. When generating HTML documents,
     * this may yield better results; it does things like escaping
     * characters in href attributes.</li>
     * </li>ATTRVAL_OUTPUT_METHOD_TEXT:  Use a Text formatter to
     * produce the output document. Generally the right choice if your
     * stylesheet wants to take over _all_ the details of formatting,
     * most often when producing something that isn't an XML or HTML
     * document.</li>
     * </ul>
     */
    public static final String ATTRVAL_OUTPUT_METHOD_HTML = "html",
        ATTRVAL_OUTPUT_METHOD_XML                         = "xml",
        ATTRVAL_OUTPUT_METHOD_TEXT                        = "text";


    /* For space-att*/
    public static final int ATTRVAL_PRESERVE = 1, ATTRVAL_STRIP = 2;


    /**
     * For indent-result
     */
    public static final boolean ATTRVAL_YES = true, ATTRVAL_NO = false;


    /**
     * For letter-value attribute (part of conversion attributes).
     */
    public static final String ATTRVAL_ALPHABETIC = "alphabetic",
        ATTRVAL_OTHER                             = "other",
        ATTRVAL_TRADITIONAL                       = "traditional";


    /**
     * For level attribute in xsl:number.
     */
    public static final String ATTRVAL_SINGLE = "single",
        ATTRVAL_MULTI                         = "multiple", ATTRVAL_ANY = "any";


    /**
     * For Stylesheet-prefix and result-prefix in xsl:namespace-alias
     */
    public static final String ATTRVAL_DEFAULT_PREFIX = "#default";

    /**
     * Integer equivalents for above
     */
    public static final int NUMBERLETTER_ALPHABETIC = 1, NUMBERLETTER_TRADITIONAL = 2;

    /**
     * Integer equivelents for above
     */
    public static final int NUMBERLEVEL_SINGLE = 1, NUMBERLEVEL_MULTI = 2,
        NUMBERLEVEL_ANY                        = 3, MAX_MULTI_COUNTING_DEPTH = 32;


    /**
     * some stuff for my patterns-by-example
     */
    public static final String ATTRVAL_THIS = ".", ATTRVAL_PARENT = "..",
        ATTRVAL_ANCESTOR                    = "ancestor", ATTRVAL_ID = "id";


    /**
     * Stuff for sorting
     */
    public static final String ATTRVAL_DATATYPE_TEXT = "text",
        ATTRVAL_DATATYPE_NUMBER                      = "number",
        ATTRVAL_ORDER_ASCENDING                      = "ascending",
        ATTRVAL_ORDER_DESCENDING                     = "descending",
        ATTRVAL_CASEORDER_UPPER                      = "upper-first",
        ATTRVAL_CASEORDER_LOWER                      = "lower-first";

    /**
     * Integer equivelents for DATATYPE attribute
     */
    public static final int SORTDATATYPE_TEXT = 1, SORTDATATYPE_NUMBER = 2;

    /**
     * Integer equivelents for ORDER attribute
     */
    public static final int SORTORDER_ASCENDING = 1, SORTORDER_DESCENDING = 2;

    /**
     * Integer equivelents for CASE-ORDER attribute
     */
    public static final int SORTCASEORDER_UPPERFIRST = 1, SORTCASEORDER_LOWERFIRST = 2;

    /**
     * some stuff for Decimal-format
     */
    public static final String ATTRVAL_INFINITY = "Infinity",
        ATTRVAL_NAN                             = "NaN",
        DEFAULT_DECIMAL_FORMAT                  = "#default";


    /**
     * temp dummy
     */
    public static final String ATTRNAME_XXXX = "XXXX";
}
